The present invention relates generally to wireless communication systems and, in particular, to satellite-based location systems.
Satellite-based navigational systems provide accurate, three dimensional position information to worldwide users. Prior art satellite-based navigational systems, however, utilize a time consuming search process for determining position information. Time consuming search processes are undesirable in navigational systems particularly when the user is moving or in an emergency situation requiring immediate assistance.
FIG. 1 depicts a well-known satellite-based navigational system referred to as Global Positioning System (GPS) 10. GPS 10 comprises a plurality of satellites 12-j and at least one GPS receiver 14, where j=1,2, . . . ,n. Each satellite 12-j orbiting earth at a known speed vj and being a known distance apart from the other satellites 12-j. Each satellite 12-j transmits a GPS signal 11-j which includes a carrier signal with a known frequency f modulated using a unique pseudo-random noise (PN-j) code and navigational data (ND-j) associated with the particular satellite 12-j, wherein the PN-j code includes a unique sequence of PN chips and navigation data ND-j includes a satellite identifier, timing information and orbital data, such as elevation angle xcex1j and azimuth angle xcfx86j. FIG. 2 depicts a typical 20 ms frame of the GPS signal 11-j which comprises twenty full sequences of a PN-j code in addition to a sequence of navigation data ND-j.
GPS receiver 14 comprises an antenna 15 for receiving GPS signals 11-j, a plurality of correlators 16-k for detecting GPS signals 11-j and a processor 17 having software for determining a position using the navigation data ND-j, where k=1,2, . . . ,m. GPS receiver 14 detects GPS signals 11-j via PN-j codes. Detecting GPS signals 12-j involves a correlation process wherein correlators 16-k are used to search for PN-j codes in a carrier frequency dimension and a code phase dimension. Such correlation process is implemented as a real-time multiplication of a phase shifted replicated PN-j codes modulated onto a replicated carrier signal with the received GPS signals 11-j, followed by an integration and dump process.
In the carrier frequency dimension, GPS receiver 14 replicates carrier signals to match the frequencies of the GPS signals 11-j as they arrive at GPS receiver 14. However, due to the Doppler effect, the frequency f at which GPS signals 11-j are transmitted changes an unknown amount xcex94fj before GPS signal 11-j arrives at GPS receiver 14xe2x80x94 that is, each GPS signal 11-j should have a frequency f+xcex94fj when it arrives at GPS receiver 14. To account for the Doppler effect, GPS receiver 14 replicates the carrier signals across a frequency spectrums fspec ranging from f+xcex94fmin to f+xcex94fmax until the frequency of the replicated carrier signal matches the frequency of the received GPS signal 11-j, wherein xcex94fmin and xcex94fmax are a minimum and maximum change in frequency GPS signals 11-j will undergo due to the Doppler effect as they travel from satellites 12-j to GPS receiver 14, i.e., xcex94fminxe2x89xa6xcex94fjxe2x89xa6xcex94fmax.
In the code phase dimension, GPS receiver 14 replicates the unique PN-j codes associated with each satellite 12-j. The phases of the replicated PN-j codes are shifted across code phase spectrums Rj(spec) until replicated carrier signals modulated with the replicated PN-j codes correlate, if at all, with GPS signals 11-j being received by GPS receiver 14, wherein each code phase spectrum Rj(spec) includes every possible phase shift for the associated PN-j code. When GPS signals 11-j are detected by correlators 16-k, GPS receiver 14 extracts the navigation data ND-j from the detected GPS signals 11-j and uses the navigation data ND-j to determine a location for GPS receiver 14, as is well-known in the art.
Correlators 16-k are configured to perform parallel searches for a plurality of PN-j codes across the frequency spectrum fspec and the code phase spectrums Rf(spec). In other words, each of the plurality of correlators 16-k are dedicated to searching for a particular PN-j code across each possible frequency between f+xcex94fmin to f+xcex94fmax and each possible for that PN-j code. When a correlator 16-k completes its search for a PN-j code, the correlator 16-k searches for another PN-j code across each possible frequency between f+xcex94fmin to f+xcex94fmax and each possible phase shift for that PN-j code. This process continues until all PN-j codes are collectively searched for by the plurality of correlators 16-k. For example, suppose there are twelve satellites 12-j, thus there would be twelve unique PN-j codes. If GPS receiver 14 has six correlators 16-k, then GPS receiver 14 would use its correlators 16-k to search for two sets of six different PN-j codes at a time. Specifically, correlators 16-k search for the first six PN-j codes, i.e., correlator 16-1 searches for PN-1, correlator 16-2 searches for PN-2, etc. Upon completing the search for the first six PN-j codes, correlators 16-k search for the next six PN-j codes, i.e., correlator 16-1 searches for PN-7, correlator 16-2 searches for PN-8, etc.
For each PN-j code being searched, correlator 16-k performs an integration and dump process for each combination of frequency and phase shifts for that PN-j code. For example, suppose the frequency spectrum fspec includes 50 possible frequencies for the carrier signal and the code phase spectrum Rf(spec) for a PN-j code includes 2,046 possible half-chip phase shifts. To search for every possible combination of frequency and half-chip phase shifts for the PN-j code, the correlator 16-k would then need to perform 102,300 integrations. A typical integration time for correlators 16-k is 1 ms, which is generally sufficient for GPS receiver 14 to detect GPS signals 11-j when antenna 15 has a clear view of the sky or a direct line-of-sight to satellites 12-j. Thus, for the above example, 102.3 seconds would be required for one correlator 16-k to search every possible combination of frequency and half-chip phase shifts for a PN-j code.
GPS receivers, however, are now being incorporated into mobile-telephones or other types of mobile communication devices which do not always have a clear view of the sky. Thus, GPS receiver 14 will not always have a clear view of the sky. In this situation, the signal-to-noise ratios of GPS signals 11-j received by GPS receiver 14 are typically much lower than when GPS receiver 14 does have a clear view of the sky, thus making it more difficult for GPS receiver 14 to detect the GPS signals 11-j. To compensate for weaker signal-to-noise ratios and enhance detection of GPS signals 11-j, correlators 16-k can be configured with longer integration times. A sufficient integration time, in this case, would be approximately 1 second. Thus, for the example above, 102,300 seconds would be required for a correlator 16-k to search for every possible combination of frequency and half-chip phase shifts for a PN-j code. Longer integration times result in longer acquisition times for detecting GPS signals 11-j. Longer acquisition times are undesirable.
Wireless assisted GPS (WAG) systems were developed to facilitate detection of GPS signals 11-j by GPS receivers configured with short or long integration times. The WAG system facilitates detection of GPS signals 11-j by reducing the number of integrations to be performed by correlators searching for GPS signals 11-j. The number of integrations is reduced by narrowing the frequency range and code phase ranges to be searched. Specifically, the WAG system limits the search for GPS signals 11-j to a specific frequency or frequencies and to a range of code phases less than the code phase spectrum Rf(spec).
FIG. 3 depicts a WAG system 20 comprising a WAG server 22, a plurality of base stations 23 and at least one WAG client 24. WAG server 22 includes a GPS receiver 26 having an antenna 27 installed in a known stationary location with a clear view of the sky. GPS receiver 26 would typically have correlators configured with short integration times because antenna 27 has a clear view of the sky. WAG server 22 being operable to communicate with base stations 23 either via a wired or wireless interface. Each base station 23 has a known location and provides communication services to WAG clients located within a geographical area or cell 25 associated with the base station 23, wherein each cell 25 is a known size and is divided into a plurality of sectors. WAG client 24 includes a GPS receiver 28 and perhaps a mobile-telephone 27, and is typically in motion and/or in an unknown location with or without a clear view of the sky. GPS receiver 28 having correlators typically configured with long integration times. Note that the term xe2x80x9cmobile-telephone,xe2x80x9d for purposes of this application, shall be construed to include, but is not limited to, any communication device.
FIG. 4 is a flowchart 300 illustrating the operation of WAG system 20. In step 310, WAG server 22 detects a plurality of satellites 12-j via their GPS signals 11-j using its GPS receiver 26. WAG server 22 acquires the following information from each detected satellite 12-j: the identity of satellite 12-j and frequency fj, code phase, elevation angle xcex1j and azimuth angle xcfx86j associated with the detected satellite 12-j, wherein the elevation angle xcex1j is defined as the angle between the line of sight from WAG server 22 or client 24 to a satellite 12-j and a projection of the line of sight on the horizontal plane, and the azimuth angle xcfx86j is defined as the angle between the projection of the line of sight on the horizontal plane and a projection of the north direction on the horizontal plane. See FIG. 5, which depicts an elevation angle xcex1j and an azimuth angle xcfx86j corresponding to a satellite 12-j and a WAG server 22 or WAG client 24.
In step 315, WAG server 22 receives sector information from base station 23 currently in communication with or serving WAG client 24, wherein the sector information indicates a sector WAG client 24 is currently located. In step 320, WAG server 22 makes an initial estimate of WAG client""s position based on the known location of the serving base station, the cell size associated with the serving base station, and the sector in which WAG client 24 is currently located. In one embodiment, WAG server 22 initially estimates that WAG client 24 is located at a reference point within the sector, e.g., point at approximate center of sector. In another embodiment, WAG server 22 initially estimates WAG client 24""s position using well-known forward link triangulation techniques.
In step 330, for each detected satellite 12-j, WAG server 22 uses the information acquired from the detected GPS signals 11-j to predict a frequency fj(r) at the reference point and a code phase search range Rj(sect) which includes all possible code phases for GPS signal 11-j arriving anywhere within the sector where WAG client 24 is currently located. In step 340, WAG server 22 transmits a search message to the serving base station 23, wherein the search message includes, for each detected satellite 12-j, information regarding the associated PN-j code, predicted frequency fj(r) and code phase search range Rj(sect). 
In step 350, serving base station 23 transmits the search message to WAG client 24 which, in step 360, begins a parallel search for the satellites 12-j indicated in the search message. Specifically, WAG client 24 will use its correlators to simultaneously search for each of the GPS signals 11-j at the predicted frequency fj(r) within the limitations of the code phase search range Rj(sect) indicated in the search message. Thus, the number of integrations is reduced to the predicted frequency fj(r) within the limitations of the code phase search range Rj(sect). However, due to the long integration times of GPS receiver 28 in WAG client 24, the search time is still considered time consuming. Accordingly, there exists a need to facilitate detection of satellites 12-j particularly when GPS receiver correlators are configured with longer integration times.
The present invention is a method and apparatus for facilitating detection of satellite signals using a sequential search technique. The present invention uses a sequential search technique to sequentially search for satellite signals based on information in a search message. Information accumulated during prior searches of satellite signals is then used, in conjunction with the information in the search message, to effectively reduce the area and code phase search ranges in which a GPS receiver searches for other satellite signals.
In one embodiment, the GPS receiver uses a plurality of its correlators to search for a first satellite indicated in a search message based on the one or more of the following criteria: maximize utilization of correlators; minimize search time; and maximize the amount of information regarding location of the GPS receiver. Subsequently, the GPS receiver uses its correlators to search for a second satellite indicated in the search message based information acquired upon detecting the first satellite and on one or more of the following criteria: maximize utilization of correlators; minimize search time; and maximize the amount of additional information regarding location of the GPS receiver when used in conjunction with the information obtained from a signal transmitted by the first satellite. Information acquired upon detecting the first and second satellites are used to predict an area in which the GPS receiver may be located. Such area is typically an area much smaller than the size of the sector in which the GPS receiver is currently located. Based on the predicted area, code phase search ranges Rj(pred) are predicted for the remaining satellites indicated in the search message. Advantageously, the predicted code phase search ranges Rf(pred) are narrower than code phase search ranges Rj(sect) indicated in the search message. The GPS receiver uses the predicted code phase search ranges and frequencies indicated in the search message to perform a parallel search for two or more of the remaining satellites. Upon detecting some or all of the satellites indicated in the search message, a position of the GPS receiver can be estimated using navigation data in signals transmitted by the detected satellites.